Skip to content

feat(LipschitzSmooth/Continuity): finite-dim continuity via K-semiconcavity#35

Draft
FordUniver wants to merge 1 commit into
feat/lipschitzSmooth-basicfrom
feat/lipschitzSmooth-continuity
Draft

feat(LipschitzSmooth/Continuity): finite-dim continuity via K-semiconcavity#35
FordUniver wants to merge 1 commit into
feat/lipschitzSmooth-basicfrom
feat/lipschitzSmooth-continuity

Conversation

@FordUniver

Copy link
Copy Markdown
Owner

A K-smooth function on a finite-dimensional real inner-product space is locally Lipschitz, hence continuous — without any convexity hypothesis on f and without presupposing differentiability. The proof routes through the K-semiconcavity decomposition: g(x) := f x - K/2 ‖x‖² is concave on the whole space (Cannarsa-Sinestrari, Semiconcave Functions (2004), Proposition 1.1.3(a)⇔(c) p.2); mathlib's ConcaveOn.locallyLipschitz then gives local Lipschitz of g in finite-dim, and adding back the locally Lipschitz K/2 ‖x‖² recovers f.

The [FiniteDimensional] hypothesis is necessary, not convenient — discontinuous linear functionals satisfy LipschitzSmoothWith 0 ℓ in infinite-dim (Bauschke-Combettes 2017 Example 8.42 p.151). The [InnerProductSpace] restriction is for the parallelogram identity in the decomposition; a general-finite-dim-normed-space refinement via norm-equivalence transfer is left as a follow-up.


The full C^{1,1} characterisation (Differentiable ℝ f, LipschitzWith K (fderiv ℝ f)) is the natural next step from the K-semiconcavity decomposition exposed here — it goes through the super-gradient sandwich (CS04 Corollary 3.3.8 p.61). Mathlib currently lacks subgradient / superdifferential infrastructure for ConcaveOn, so that step is deferred to a separate prerequisite PR introducing super-gradient existence for ConcaveOn ℝ univ in finite-dim Hilbert via the geometric Hahn-Banach machinery already in Mathlib/Analysis/LocallyConvex/Separation.lean. Once that lands, a follow-up PR can extend this file with the Differentiable and LipschitzWith_fderiv results. Draft because that prereq doesn't exist yet — the content here is internally complete (no sorries).

Diff for the changes just in this PR over its predecessor: link

New file `Mathlib/Analysis/Calculus/LipschitzSmooth/Continuity.lean`. In a
finite-dimensional real inner-product space, a `K`-smooth function is locally
Lipschitz, hence continuous — without any convexity hypothesis on `f` and
without presupposing differentiability.

The proof routes through the **K-semiconcavity decomposition**: the upper-bound
side of the two-sided abs predicate implies `g(x) := f x - K/2 ‖x‖²` is
concave on the whole space (Cannarsa-Sinestrari, *Semiconcave Functions,
Hamilton-Jacobi Equations, and Optimal Control* (2004), Prop. 1.1.3(a)⇔(c)
p.2). Mathlib's `ConcaveOn.locallyLipschitz` (which requires
`[FiniteDimensional ℝ F]`) then gives local Lipschitz of `g`, and adding back
the locally Lipschitz `K/2 ‖x‖²` (via `ContDiff.locallyLipschitz` applied to
`contDiff_norm_sq`) recovers `f`.

The `[FiniteDimensional]` hypothesis is necessary: in infinite-dim, a
discontinuous linear functional `ℓ : F → ℝ` satisfies `LipschitzSmoothWith 0 ℓ`
but fails continuity (Bauschke-Combettes, *Convex Analysis and Monotone
Operator Theory in Hilbert Spaces* (2017), Example 8.42 p.151). The
`[InnerProductSpace]` restriction is for the parallelogram identity used in
the K-semiconcavity decomposition; a general-finite-dim-normed-space refinement
via norm-equivalence transfer is left as a follow-up.

Three theorems:
- `LipschitzSmoothWith.concaveOn_sub_half_sq_norm` — the semiconcavity
  decomposition (any dim, Hilbert).
- `LipschitzSmoothWith.locallyLipschitz` — corollary (finite-dim Hilbert).
- `LipschitzSmoothWith.continuous` — corollary (finite-dim Hilbert).

The full `C^{1,1}` characterisation (`Differentiable`, `LipschitzWith
(fderiv ℝ f)`) is deferred to a follow-up; it requires super-gradient
infrastructure not currently in mathlib.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant